package demo2;

import org.omg.CORBA.MARSHAL;

import java.util.Random;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 石方旭
 * Date: 2022-07-27
 * Time: 15:01
 */
public class test2 {

    /**
     * 给定一个很长的数组 (长度 1000w), 通过随机数的方式生成 1-100 之间的整数.
     * 实现代码, 能够创建两个线程, 对这个数组的所有元素求和.
     * 其中线程1 计算偶数下标元素的和, 线程2 计算奇数下标元素的和.
     * 最终再汇总两个和, 进行相加
     * 记录程序的执行时间.
     */
    public static int i =0;
    public static long t1Sum =0;
    public static long t2Sum =0;
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        int[] tmp = new int[1000_0000];
        Random r = new Random();

        for(i =0;i<tmp.length;++i){
            tmp[i] =  r.nextInt(100)+1;
        }
        Thread t1 = new Thread(()->{
            for(i =0;i<tmp.length;i+=2){
                t1Sum +=tmp[i];
            }
        });
        t1.start();
        Thread t2 = new Thread(()->{
            for(i =1;i<tmp.length;i+=2){
                t2Sum +=tmp[i];
            }
        });
        t2.start();

        try {
            t1.join();
            t2.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("汇总两个和 : "+t2Sum+t1Sum);
        long end = System.currentTimeMillis();

        System.out.println("程序的执行时间 : " + (end - start) + "ms");

    }


}
